package com.xinxi11.project.qx.services;

import java.util.List;

import com.xinxi11.module.core.service.IBaseService;
import com.xinxi11.project.qx.beans.QxRole;

/**
 * 角色service
 * 
 * @author 李国江
 * @date 2011-8-9
 */
public interface IQxRoleService extends IBaseService {

	/**
	 * 查询用户的角色及子角色.角色要按级别排序,级别高的在最前面
	 * 
	 * @param id
	 *            用户ID
	 * @return 角色
	 */
	List<QxRole> findRoleByUser(Long id) ;

	/**
	 * 模糊匹配角色名称
	 * 
	 * @param roleName
	 *            角色名
	 * @return
	 */
	List<QxRole> findLikeName(String roleName);

	/**
	 * 查询当前用户角色，不含子角色（并去除有关系的角色）
	 * @param userId
	 * @return
	 * @
	 */
	public List<QxRole> findDirectRoles(Long userId) ;

	/**
	 * 查询ids查询roles
	 * @param ids
	 * @return
	 * @
	 */
	public List<QxRole> findRolesByIds(List<String> ids) ;

	/**
	 * 根据ID查询角色信息，包含父角色的名称和部门信息
	 * @param roleId
	 * @return
	 * @
	 */
	public QxRole findRoleById(String roleId) ;

	/**
	 * 根据子角色中最大的id
	 * @param parentId
	 * @return
	 * @
	 */
	public QxRole findMaxRole(String parentId) ;

	/**
	 * 查询某个角色下的所有子角色信息（包含本角色）
	 * @param userId
	 * @param roleIds
	 * @return
	 * @
	 */
	public List<QxRole> findRolesByUserRole(String roleIds) ;
	/**
	 * 以角色名查询
	 * @param roleName
	 * @return
	 * @
	 */
	public QxRole findByName(String roleName);
	
	/**
	 * 查询所有角色数据
	 * @return
	 * @
	 */
	public List<QxRole> findAllRole() ; 
}
